// ============================== 导入依赖 ============================== //

import CORE from '@/CORE'
import BaseClass from '@api/accesscontrol/model/AccessControlOrganPointDto'
import API from './API'

// ============================== 导出状态集 ============================== //

export default {
  // —————————————————————————————— 常量状态 —————————————————————————————— //

  /**
   * 接口
   */
  API,

  /**
   * 映射
   */
  MAP: {
    INFO: '绑定信息', // 信息
    tipSubmit: '更新绑定', // 提交
  },

  /**
   * 首要开关
   *
   * 1. 初始化完成时调用
   * 2. 提交后刷新时调用
   */
  MAIN_START: '', // 'startInfo' 或 'startList' 或 'startOne' 或 ''

  /**
   * 初始配置
   */
  INIT_CONFIG: {
    /**
     * 重置时是否保持复选
     *
     * true  保持复选
     * false 重置复选 (将 param.idList = param.rowList = [])
     */
    RESET_KEEP_CHECK: true,
  },

  /**
   * 初始信息参数
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setInfoParam() 重置时使用
   */
  INIT_INFO_PARAM: CORE.initObj(BaseClass, {
    //
  }),

  /**
   * 初始信息
   *
   * 1. 初始存在，才能响应
   * 2. setInfo() 合并时使用
   */
  INIT_INFO: {
    authList: [], // 授权列表
  },

  /**
   * 初始单项
   *
   * 1. 初始存在，才能响应
   * 2. CORE.mixStore(store) 时使用
   * 3. setOne() 重置时使用
   * 4. openAdd() 新增时使用
   */
  INIT_ONE: {
    organId: '', // 组织 ID
    bindIdList: [], // 绑定 ID 数组
    unbindIdList: [], // 解绑 ID 数组
  },
}
